package top.kikt.book.core.base

import org.jsoup.nodes.Document
import top.kikt.book.core.entity.ChapterEntity
import top.kikt.book.core.entity.ChapterMetaEntity

/**
 * 解析章节内容
 */
interface BookChapterHandler {

    /**
     * 需要解析出每章对应的信息
     */
    fun parseChapterMeta(document: Document, menuUrl: String): List<ChapterMetaEntity>

    /**
     * 解析章节, 这个方法的text会被写入到临时文件夹内, 并写入最终文件
     */
    fun parseChapter(chapterMetaEntity: ChapterMetaEntity): ChapterEntity?

    /**
     * 根据元数据解析出章节名字, 因为很多电子阅读器的章节名解析是使用 第***章 XXX 的方式, 所以这里也建议解析成这种方案
     *
     * epub 不使用这个属性，因为 epub 的目录是单独的文件，不需要小说阅读器来解析
     */
    fun getOutputChapterTitle(chapterMetaEntity: ChapterMetaEntity): String

}